Uniform Genericity for Aspect Languages
نویسندگان
چکیده
Aspect-oriented programming languages promise to provide better modularity than pure object-oriented decomposition. A typical benefit of increased modularity is ease of maintenance, evolution and reuse. However, it has been noted by various researchers that many of the first generation aspect languages do not provide the degree of reusability initially hoped for. In this paper, we argue that the problem is due to a lack of support for aspect genericity, respectively to a lack of support for a sufficiently powerful kind of genericity. We introduce the concept of uniform genericity for aspect languages and discuss in which ways it goes beyond previous approaches to generic aspects. Then we present LogicAJ, a uniformly generic aspect language. Using LogicAJ as an example, we show how uniform aspect genericity recommends itself for implementing reusable solutions of various problems discussed in literature, ranging from the generic replacement of object instantiation, over verification of constraints and conventions, to the generic implementation of design pattern variants. We believe uniform genericity to be an important ingredient for second generation aspect languages whose aspects are only loosely coupled to base programs, thus easing aspect reuse and independent evolution of aspects and base programs.
منابع مشابه
A Definition, Overview and Taxonomy of Generic Aspect Languages
Aspect-orientation promises better modularity than pure object-oriented decomposition. A typical benefit of increased modularity is ease of maintenance, evolution and reuse. However, it has been noted by various researchers that many of the first generation aspect languages do not provide the degree of reusability initially hoped for. In this paper, we argue that the problem of insufficient reu...
متن کاملGAP: Generic Aspects for PHP
In this paper, we explore how aspect-oriented programming can be implemented for the PHP programming language. We start with an overview of existing implementations, identifying their strengths and weaknesses. We then introduce GAP, our implementation of aspect-oriented programming for PHP that uses dynamic weaving, supports aspect genericity, and provides a framework to implement custom pointc...
متن کاملMiniboxing and the MbArray API Semester Project
In modern programming languages, genericity allows abstracting over types, enabling programmers to develop algorithms and data structures regardless of the data being handled. This tremendeously improves productivity and code reuse. Although generics offer a uniform programming experience accross different types, the actual data comes in different sizes and shapes. For example, we can equally i...
متن کاملFine-Grained Generic Aspects
In theory, join points can be arbitrary places in the structure or execution of a program. However, most existing aspect languages do not support the full expressive power of this concept, limiting their pointcut languages to a subset of the theoretically possible join points. In this paper we explore a minimal language design based on only three built-in fine-grained pointcuts, which enable ex...
متن کاملGenericity in Object-Oriented Programming Languages
Genericity is one of the most powerful means for obtaining flexibility in programming with statically typed programming languages. Genericity constructs take on very different forms, the choice of which has a considerable impact on expressiveness, modularity, static checkability and efficiency properties of programs. This tutorial presents an in-depth discussion of the history, origins, and str...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004